1. Field of Invention
Embodiments of the invention relate generally to the software arts, and, more specifically, to a method and a system to test and verify application modules using static tests from a test suite.
2. Background
A programmer can make an error (mistake), which produces a defect (fault, bug) in the code, in software or a system, or in a document. If a defect in code is executed, the system will fail to do what it should do (or do something it is not supposed to), causing a failure. Defects in software, systems or documents may result in failures. A fault can also turn into a failure when the environment is changed. Examples of these changes in environment include the software being run on a new hardware platform, alterations in source data or interacting with different software.
Software testing is the process used to assess the quality of computer software. Software testing is an empirical technical investigation conducted to provide stakeholders with information about the quality of the product or service under test, with respect to the context in which it is intended to operate. This includes, but is not limited to, the process of executing a program or application with the intent of finding software bugs. Software testing may be viewed as an important part of the software quality assurance (SQA) process. In SQA, software process specialists and auditors take a broader view on software and its development. They examine and change the software engineering process itself to reduce the amount of faults that may increase the defect rate.
There are many approaches to software testing. Reviews, walkthroughs or inspections are considered static testing, whereas actually running the program with a given set of test cases at a given development stage is referred to as dynamic testing. Software testing is used in association with verification and validation. In general, validation is the process of checking if something satisfies a certain criterion. In a quality management system, validation usually relates to confirmation that the needs of an external customer or user of a product, service, or system are met. Verification is usually an internal quality process of determining compliance with a regulation, standard, or specification.
A common practice of software testing is performed by an independent group of testers after the functionality is developed before it is shipped to the customer. This practice often results in the testing phase being used as buffer to compensate for project delays, thereby compromising the time devoted to testing. Another practice is to start software testing at the same moment the project starts and continue the process until the project finishes.